BeOS
Застосовуваність: ця робота може бути використана як дидактичний матеріал курсу операційні системи
кафедри теоретичної інформатики інституту формальної математики.
Об'єкт та предмет: операційна система BeOS.
Мета та завдання: розкриття мотивації та історія BeOS-побідних ОС.
Частина 1. Передісторія
Як правило, коли йдеться про BeOS, завжди починають історію компанії Be Inc. Але я хотів би почати розповідь цієї історії з більш ранніх часів, інакше не зрозуміло, чому все сталося саме так і ніяк інакше.
Перші хакери
Все почалося ще в MIT, коли Грінблатт та Госпер сиділи ночами за своїм TX-0. Це покоління програмістів, яке створило перші комп'ютерні ігри, писали перші хаки (такі як відтворення музики дисководом), билися безсонними ночами за скорочення програми на кілька байт, їх за заслугами називають родоначальниками комп'ютерної епохи справжніх хакерів. Все що було створено після цього є лише повторення пройденого шляху. Забігаючи вперед скажу, що апогеєм досягнення перших хакерів стали LISP машини – справжні витвори мистецтва, які, як і всі гарні речі, з неймовірною силою відкидаються ринком інформаційних технологій.
У ті дні були сформульовані перші базові принципи вільного програміста, людини, яка повністю управляє комп'ютером, людини, яка не обмежена методами вираження своєї творчої фантазії і прагненням зробити щось неординарне для комп'ютера. Можна виділити, якщо хочете, кодекс перших хакерів:
Комп'ютери повинні бути повністю доступні людині за ними працюючому. Це означає повний та беззаперечний контроль над комп'ютером у часі (машинному часі) та просторі (над апаратурою). Природа цього правила походить від витоків, коли хлопці з MIT бавилися і посміювалися з хлопців з IBM, які обслуговували гігантських монстрів — мейнфрейми. Їм не було зрозуміло який сенс у всіх цих захистах та демонічних правилах роботи з віддаленими терміналами за якими нічого не можна зробити. Вони жартома підсовували під стіл адміністраторам списки паролів усіх користувачів, самі працюючи за «персональною» TX–0 з одним терміналом. Це зумовило поняття персонального комп'ютера для конкретної людини.
Другим було правило «Правильної речі». Це дуже складно піддається опису. Це якщо хочете наріжний камінь культури хакерів. Наприклад людей які записувалися в чергу на машинний час, щоб порахувати якесь математичне завдання хакери називали лузерами, в той час людину, яка писала перший у світі інтерактивний калькулятор з базовими математичними операціями визнавали своїм, як таким, який робив «Правильні речі». Ще сюди входить, наприклад, написання гри на апаратурі вартістю мільйони доларів заради розваги, щоб постріляти з ракет на дисплеї вночі при вимкненому світлі, тоді як уранці «лузери» вважатимуть свої «дуже потрібні людству математичні завдання». Програвання симфонії Баха на дисководі — звичайно ж, є «правильною річчю». Перша «правильна» мікро-ОС була написана саме хакерами, в той час як Multics писалася на ворожому PL/1.
Звичайно, часом, кожні з них пішли працювати у великі компанії та корпорації, Грінблатт і Госпер навіть розвинули свої ідеї та втілили їх у життя у вигляді компаній, які виробляють ЛІСП машини Symbolics та LMI. Але наступні покоління хакерів завжди проходять через те, що пройшли Грінблатт та Госпер і ніколи не забувають про «правильні речі».
Клуб саморобних комп'ютерів
Наступне покоління хакерів росло в епоху мікропроцесорів, коли стало можливим створити мініатюрний комп'ютер, який поміститься цілком у вас на столі. Першим став комп'ютер Altair 8800, який запалив Гейтса і з якого розпочалася історія Apple та Microsoft.
Я маю на увазі, що молодий Білл Гейтс саме після появи Альтаїра зрозумів, чим треба займатися. Після створення BASIC для Альтаїра, а потім умаслювання IBM, Гейтсу вдалося підписати з ними контракт на створення ОС DOS, яка була викуплена в однієї людини за 50 000 $ і модифікована для роботи на 8088.
Джобс і його друг Возняк, на відміну від Гейтса, створювали як свою ОС так і свій комп'ютер. Це був перший Apple. Назва була обрана так, щоб стояти у довіднику попереду Atari. Комп'ютер був створений на базі легендарного процесора 6502. Цей 8-бітний процесор і досі використовується у виробництві. У Болгарії випускався навіть клон Apple II – Правець-8. У мене в школі в 7 класі стояв такий комп'ютер, за яким я мав можливість попрацювати після уроків.
Клуб Саморобних Комп'ютерів передбачав обмін досвідом інформацією, схемами, програмами аматорів. Створення нових саморобних комп'ютерів Перший Apple був вперше продемонстрований саме в клубі, а не на якійсь виставці. Стів Возняк особисто паяв його, як і Apple II, він не залишав паяльник ночами навіть коли компанія Apple мала багатомільйонний капітал. Це були справжні geeks.
Інші "саморобні комп'ютери" цього покоління - це Atari, Amiga, Commodore C64, Sinclair ZX Spectrum. Думаю багато хто в СРСР паяли ZX Spectrum, я ж свого часу не пошкодував 200 $ (це були жахливі гроші) і купив Atari, на мене у дворі дивилися так, ніби зараз я купив собі у Києві Ferrari.
Основний атрібутом клубу було проведення змагань із написання Intro — демок, які демонструвалися співтовариству хакерів. Ці змагання проходили у різних класах 1, 2, 4, 8, 16 кілобайт. Програми були різними від демонстрації максимальних можливостей апаратури відеосистеми закінчуючи 3D моделями. Дух цих змагань було перенесено на платформу Intel. Саме тут я застав історію, яку я знаю вам. Я пам'ятаю, як я продемонстрував у школі програму, яка в текстовому режимі ділить VGA екран на дві частини, у верхній частині текст плавно тече (прокручується) у 4 напрямках, у нижній частині крутяться тривимірні пентаграми з логотипом Hexile (так я назвав групу хакерів з якими ми сиділи на уроках і вперше у житті напивалися до несвідомого стану). І все це було в абсолютно нестандартному текстовому режимі 86 на 26. Безперечно, я тоді робив правильні речі! Після цього я вже не соромився слова хакер.
Епоха графічного інтерфейсу
У той час, коли в Palo Alto Research Center (PARC) науково-дослідному підрозділі Xerox створювалася концепція графічного інтерфейсу і Apple і Microsoft вже щільно стояли на ногах. Кажуть, коли дослідники PARC презентували свій графічний інтерфейс Star рада директорів Xerox сказала:
"Комп'ютерна миша? Ви що там обкурилися чогось? Це що, наукові дослідження?» Ось так комп'ютерна миша та графічний інтерфейс висіли на волосині від смерті, якби їх не врятував Джобс, який був натхненний цим. Це започаткувало створення першого Macintosh, в концепцію якого було покладено принцип — комп'ютер — витвір мистецтва.
На зміну легендарному 6502 прийшов 32-бітовий процесор M68000. Дуже велика паніка почалася, коли Microsoft оголосила про розробку конкуруючого продукту — Windows. Кажуть, Біл Гейтс у приватних розмовах зі Стівом Джобсом визнавав, що його забезпечення не таке якісне як у Apple, проте це вже нікого не хвилювало, обсяги продажів зростали так що це вже не мало жодного значення.
Звичайно ж, як і всі в епосі пост комунізму на території колишнього СРСР всі починали з Windows. Я з благоговінням ставився у людей, які могли собі дозволити замовити зі штатів комп'ютер Macintosh. Однак і тут мені пощастило, до нас у гості приїжджав знайомий американець, коли я мав нагоду ночами просиджувати за його моноблоком Apple Macintosh.
Частина 2. Епоха великих систем
Як правило, коли йдеться про BeOS, завжди починають історію компанії Be Inc. Але я хотів би почати розповідь цієї історії з більш ранніх часів, інакше не зрозуміло, чому все сталося саме так і ніяк інакше.
Після того, як Стів Джобс покинув Apple у 1985 році почалася нова історія — Операційні системи стали означати набагато більше для комп'ютера, ніж це було раніше до цього. Наприкінці вісімдесятих активно почала виникати філософія відкритого програмного забезпечення, божевільний хакер Столман, який створив gcc, emacs, gdb, bfd та hurd, заснував GNU. Виникло два напрями організації коду, "базар" (відкриті open source проекти для багатьох людей) та "собор" (корпоративний код). Я б ще виділив спадщину (BSD проекти).
Я не даремно називаю десятиліття епохою. У світі ІТ один рік означає стільки, скільки в інших десятки років. За один рік компанія може змінити дві філософії та апаратну платформу. Кінець 80х років ознаменував собою епоху промислових операційних систем — комп'ютери стали досить потужними для того, щоб бути персональними так і обслуговувати відділи, мережеве обладнання, бути робочими станціями для CAD/CAM/CAE систем. Тому системи стали дещо складнішими. Спільнота любителів відкидала такі ринкові відносини виробника та користувача, і вони з тугою згадували про часи 6502, M68000 та своїми Atari, Apple II, Commodore 64.
Mach
Mach — яскравий приклад одного з небагатьох проектів, який всупереч своєму великому впливу на розвиток індустрії, так мало знайомий не тільки кінцевому споживачеві, але й професіоналам, які через вузьку спеціалізацію так і не зіткнулися з таким незвичайним дитям академічної формалізації професорів університету Карнегі-Мелон.
Система Mach мала як попередницю систему RIG — Rochester Intelligent Gateway, початок розробки якої припала на 1975 рік. RIG була написана для 16-бітового міні-комп'ютера компанії DataGeneral під назвою Elipce. Метою цієї розробки була демонстрація можливостей структурування операційної системи та подання її у вигляді набору процесів, які можуть взаємодіяти між собою шляхом передачі повідомлень, у тому числі й через мережу. Потім ця операційна система була покращена шляхом додавання засобів захисту та засобів прозорої роботи в мережі та отримала назву Accent (1981 року, в університеті Карнегі-Меллоуна). 1984 року вона вже використовувалася на 150 комп'ютерах PERQ – ранніх графічних станціях, але програла змагання з UNIX'ом. Ця обставина спонукала створити третє покоління ОС, яка використовує механізм обміну повідомленнями. Цей проект і був названий Mach. У зв'язку з тим, що Mach проектувалась як система, сумісна з UNIX, планувалася підтримка великої кількості програм для UNIX. Крім сумісності з UNIX, у Mach були введені й інші вдосконалення, включаючи нитки, покращені механізми міжпроцесної взаємодії, підтримка багатопроцесорних систем, покращена віртуальна пам'ять та ін.
У цей час агентство DARPA шукало операційну систему підтримки мультипроцесорів. Вибір був зроблений на користь університету Карнегі-Меллоуна і роботи над ОС Mach були продовжені. Вирішили зробити цю систему сумісною з 4.2BSD шляхом комбінації Mach і 4.2BSD як єдиного ядра. Хоча цей підхід призвів до великого ядра, він гарантував абсолютну сумісність. Перша версія Mach була реалізована в 1986 для VAX11/784, 4-х процесорної машини. Незабаром ця ОС була перенесена на IBM PC RT і Sun 3. До 1987 Mach виконувалася також на мультипроцесорах Encore і Sequent. Хоча Mach і мала мережні засоби, її швидше можна було віднести до ОС окремої машини або мультипроцесора, а не до розподіленої мережної прозорої системи.
OSF
Незабаром було створено організацію виробників комп'ютерів OSF (IBM, DEC, Hewlett-Packard) для того, щоб відібрати контроль над ОС UNIX у її власника AT&T. Вони вибрали Mach 2.5 як основу для їхньої першої операційної системи OSF/1. Хоча Mach 2 та OSF/1 містили велику кількість коду Berkley та AT&T, була надія, що OSF принаймні зможе контролювати напрямок розвитку UNIX. У 1988 році ядро Mach 2.5 було великим і монолітним через те, що містило велику кількість коду Berkley UNIX. А в 1989 році університет Карнегі-Меллоуна видалив весь код BSD UNIX з ядра і помістив його в простір користувача. Те, що залишилося, було мікроядром, що складається із чистого коду Mach. Ця версія 3.0 використовується як основа наступних версій OSF. Digital Equipment Corporation, яка поставляла OSF/1 версію UNIX в 1990 році. В даний час, тому що DEC була придбана Compaq, DEC OSF/1 UNIX зараз носить назву Tru64 UNIX і орієнтована на сервери HP. Домашня сторінка Tru64 UNIX знаходиться за адресою www.tru64unix.compaq.com. У 1996 році через злиття OSF та X/Open консорціуму з'явилася компанія Open Group (www.opengroup.org), яка зараз є основним стандартизатором UNIX.
NeXT
У 1985-му Стів Джобс, один із засновників Apple, пішов звідти, для того щоб задовольнити свої амбіції і, усамітнившись, створити легендарну ОС разом з ексклюзивним апаратним забезпеченням. В результаті діяльності нової компанії NeXT, було створено апаратно-програмний комплекс з однойменною назвою. Перші версії операційної системи NEXTSTEP, яка встановлювалася на комп'ютери NeXT, були засновані на ранніх версіях Mach 2.0, які базуються на оригінальному коді від CMU. Пізніше, після виходу Mach 3, NeXT перейшла на OSF версію ядра. Початкові файли перших версій NEXTSTEP продавалися за $10000. Для університетів представлялася 50% знижка.
NeXT Computer Inc. та Sun Microsystems Inc. наприкінці 1993 року об'єдналися для створення вільного об'єктного API на основі об'єктної моделі NEXTSTEP. Ця спільна діяльність вилилася у специфікацію OpenStep, що була опублікована NeXT у 1994 році. Слід зазначити, що нетривіальна OpenStep API була не тільки витонченим середовищем програмування на кшталт Сучасних «дивних» об'єктних тулкітів типу GTK+ або Qt, але й визначала оточення для баз даних та інших програмних сервісів. Зараз OpenStep API намагаються підтримувати GNU як GNUStep, їх сайт www.gnustep.org. NeXT ніколи не позиціонувала свої комп'ютери як "речі для мас". Останні версії NEXTSTEP були портовані під i386 і мали назву OPENSTEP [*Остання версія OPENSTEP 4.2, не плутати назву зі специфікацією об'єктного API OpenStep ]. У 1997 році відбулося злиття компанія NeXT і Apple, а Стів Джобс перейшов у "свою" нову фірму і пізніше знову очолив її.
NT
Як завжди із запізненням, Microsoft зробила хід у відповідь, який виявився набагато вдалим за її попередній інцидент з Джобсом, коли Гейтс думав просто поцупити ідею Xerox Star. Стало зрозумілим, що Windows — це не той продукт, з яким Гейтс зможе далі розвивати свої ідеї. Все більшого значення стало мати стабільність, масштабованість, потужність в операційній системі. Попередній geek підхід до написання системного програмного забезпечення вже не підходив під масштабні (в плані апаратури) персональні комп'ютери, які були вже в рази потужнішими і складнішими, ніж комп'ютери клубу саморобних комп'ютерів. Гейтс це розумів, він також розумів, що сам такого не зробить ніколи.
Гейтс зателефонував Дейву Кетлеру, співробітнику DEC. Ця людина створила, напевно, з десяток операційних систем для комп'ютерів фірми DEC. DEC створювала перші PDP-1, PDP-6, на яких ночами просиджували Грінблатт та Госпер. Говорять DEC – одна з не багатьох корпорацій усередині якої панувала неформальна обстановка, відкриті відносини, хакерський дух свободи. Напевно далася взнаки співпраця з MIT. Дейв безперечно був людиною, яка виховувалась у правильному середовищі. За його плечима розробка VMS та інших ОС для сімейства PDP, VAX.
Гейтс сказав йому, що у нього є ідея створити видатну ОС, під яку він готовий виділити необмежений бюджет. Звичайно Дейв не довго ламався. Дейв зібрав команду з видатних розробників, половина з яких була в минулому в Digital. Напевно Дейва трохи вантажила спадщина PDP та VAX. Він хотів створити щось абсолютно нове. В основу його роботи як головного архітектора NT було поставлено теоретичний матеріал, який був напрацьований у проекті Mach. Додалася система захисту VMS. Дух в якому працювала команда NT був непереборний, всього в пару років була створена версія перша NT, яка могла нативно виконувати програми DOS, OS/2, POSIX, і свої нативні Win32 програми, працювала на декількох платформах MIPS, Alpha, PowerPC та Intel. Усі її переваги просто не можна перерахувати у цьому матеріалі. Для свого часу – це було найвидатніше, що можна було створити з нуля.
Паралельно Microsoft розвивало лінійку 95, яка була тех-майданчиком для апробації нових технологій, сервісів та об'єктних API для додатків. У стратегічних планах було це перенести потім на NT.
Частина 3. SGI для бідних
Я не дарма привів тут тільки Mach і NT і не торкався Linux, який теж розвивався в цей час паралельно, а також BSD спільноту, яка в основному сповідувала принципи 70-х років і сильно трималася наслідного коду. Промислові операційні багато що змінили внесли те, чого раніше не було. По-перше, справжні хакери і гіки не сприймали соборні закриті монументальні архітектури і швидко переключилися з саморобних комп'ютерів на відкриті операційні системи, в основному це були BSD і Linux. І тільки Річард Столман пішов "правильним" шляхом і вибрав Mach для реалізації повного ланцюжка хакерського арсеналу: операційна система (hurd), компілятор (gcc), засоби розробки (emacs), відладчик (gbd). Уявіть собі все це створено однією людиною! Всі ці речі – це репозиторій способів на вирішення повсякденних завдань і полігон здійснення своїх ідей.
Однак мова тут зовсім не про нього, а про маленьку компанію Be Inc, де працювали хакери, які дуже сильно вплинули на стан справ. Тут я спробую розкрити якісь головні досягнення зроблені інженерами Be. Для початку зробимо невелику ретроспективу Be Inc.
Історія
Жан Луї Гасьє, який свого часу відповідав за створення Apple Newton і був одним з їхніх керуючих менеджерів Apple у Франції, залишив Apple через провал проекту Macintosh Portable в 1990 році щоб заснувати свій бізнес. Разом зі Стівом Сакоманом вони хотіли створити свій «саморобний комп'ютер» у найкращих традиціях клубу саморобних комп'ютерів на кшталт Amiga. Після бурхливого розвитку промислових операційних систем, усі трохи забули часи, коли весь вільний час витрачався на створення лояльного до користувача, дешевого комп'ютера, який мав втілювати фантазію користувача, а не нав'язувати правила нові методи роботи та інтерфейси. Не знаю чи думав Гасьє про це коли хотів створити свій комп'ютер чи він просто хотів робити правильні речі, але йому вдалося заповнити прогалину, яка настала на початку 90-х років у середовищі geeks – любителів саморобних комп'ютерів. Всі хакери як початківці так і легендарні (Річард Столман) перекинулися у світ UNIX, шукали правди там у відкритому ПЗ та продовженні тих операційних систем, які створювалися ще для легендарних PDP, за якими працювали Грінблатт та Госпер.
Офіційно на початку шляху компанія Be отримала кредит 20 мільйонів доларів від засекреченого інвестора. Але тоді вона ще так не називалася, назва компанія отримала тільки наприкінці 1991 року. Сам Гасьє хотів назвати її United Technoids. Після того, як його співробітники наполягли на назві Be, Гасьє сам намалював логотип Be. Компанія була розташована в Каліфорнії, в тому спекотному місці, де писали BSD і Хоффман синтезував LSD. Відразу наступного дня після виходу з Apple Гасьє та Сакоман накупили деталей для побудови першого прототипу комп'ютера. Перший прототип BeBox використовував два керуючі процесори, і додаткові 3 DSP процесори Hobbit виробництва AT&T, які повинні були використовуватися для обробки звукових та відеосигналів. Графічний адаптер створили Сакоманом самостійно. На початку 1991 року Сакоман і Гасьє найняли кількох працівників: Бенуа Шиллінгса, Боба Гарольда та Еріка Рінгевальда. Гарольд як і Сакоман був одним із учасників проекту Newton, він займався розробкою ядра операційної системи. Еріх Рінгевальд - інший розробник Apple, який брав участь у проекті Jaguar (прототипі ОС на базі Джобсівських напрацювань NeXT - Rhapsody OS, яка вже тоді, навіть ще раніше в 1997 році, вже працювала на Intel і PowerPC).
Першочерговим завданням було налагодження обладнання, яке створював Сакоман, завдання Гарольда полягало в написанні драйверів для цього обладнання та його тестуванні. Спочатку Сакоман і Гарольд не хотіли створювати свою операційну систему – спочатку була ідея купити. Але жодна існуюча система, що вбудовується, не вписувалася в рахунок і фінансові ресурси якими мала Be. Найкращою ОС була ChorusOS компанії Sun Microsystems, але була занадто дорогою. За іронією долі невдовзі розробка цієї системи в Sun згорнулася і вона почала поставлятися відкрито у вихідних кодах.
Поки Сакоман продовжував обкладати прототип новим обладнанням, створеним своїми руками – це були вже звукова карта, синтезатор, карта телефонії, в компанії тривала розробка програмного забезпечення. Програмне забезпечення складалося з багатопотокового мультизадачного ядра з шеллом в якому можна було запускати перші тести та програми для тестування обладнання. Виникло завдання створення графічного інтерфейсу. Спочатку за основу було взято віконну систему NeWS від Sun. Стів Горовіц мав вивчити PostScript для реалізації back-end методу відображення. Однак після деяких обговорень було ухвалено рішення створити свою віконну систему. Крім того, не зупинялася робота над ядром, системою введення виводу та розробкою драйверів. Паралельно з дослідженнями Горовиця, Шиллінгс розробляв нишком свою віконну систему яка виявилася надзвичайно швидкою. Горовиць незабаром кинув свою роботу і підключився до Шиллінгса, щоб допомогти йому в написанні першої бібліотеки класів Be, і далі, браузер файлової системи та перші демонстраційні програми. Ядром продовжували займатися Гарольд, Рінгевальд та Кирило Мурлон.
У 1994 році вже була версія BeOS 2, яка була в певному сенсі досить стабільною, в компанію приходили нові люди, технічні редактори – Дон Ларкін та Дуг Фалтон – які стежили за цілісністю класової системи. Роберт Полік займався написанням драйверів закінчуючи додатками та участю в розробці AppServer. До липня основною апаратною платформою був BeBox на базі двох Hobbit процесорів та трьох AT&T DSP процесорів. Але Hobbit не був процесором, що широко використовується, він використовувався в прототипі Newton, проте на ринок Newton вийшов на ARM. Головний ринок для цих процесорів була одна технологія - Eo - один з перших Tablet Computers, однак так само як і Newton - це було відкинуто ринком. Після закриттям AT&T виробництва Hobbit процесорів Be потрібно було шукати нові процесори. Розробники вибрали PowerPC, оскільки у нього хороші показники ціни/продуктивності, а також вони підтримуються основними гравцями ринку Apple, IBM та Motorola. Було просто (я не маю на увазі, що це було дійсно просто) додано дві плати з двома процесорами в BeBox (Таким чином вийшло 2 PPC, 2 Hobbit, 3 DSP) – і почалося портування BeOS на PowerPC. Це було рішення Ad-Hoc.
Джо Палмер був запрошений для створення нової архітектури BeBox на базі PowerPC. Він завершив завдання зі значним успіхом. Ядро для BeBox навіть називається на його честь – kernel_joe. Джо використовував PREP дизайн та систему введення/виведення PC. Використовувалися стандартні для PC контролери DMA, а також PCI та ISA шини. Поки Джо Палмер займався скульптурою нового BeBox, порт всього ПЗ здійснювали Боб Гарольд та Кирило Мурлон. Інші розробники займалися Хобітами, поки Джо не продемонстрував новий комп'ютер, на якому незабаром просто перекомпілювали все ПЗ.
Наймалися нові розробники. Боб Тейлор швидко став популярним розробником після того, як він реалізував підсистему TCP/IP і портував перші FTP утиліти. До цього у компанії всі дані переносилися на дискетах з UNIX машин BeOS. З появою мережі розробка скоротилася в десятки разів, з хвилин до секунд.
Нарешті 1995 року настав час показати результати проектування «самодельного комп'ютера» широкого загалу. Гасьє з небажанням повіз BeBox на виставку Agenda 95 де було багато аналітиків і фахівців ІТ та Медіа. Після повернення з виставки Гасьє сказав: «Ці комп'ютерні інсайдери... вони всі ненавидять, чим ми займаємося. Я хочу уявити нашу роботу geeks». Це стандартне ставлення корпорацій та ринку до таких проектів. Однак після публічної вистави нікому не відомий сайт почали відвідувати і Be була дещо схвильована реакцією публіки. Багато розробників-аматорів, які зголодніли по справжнім персональним комп'ютерам протягом 1995-го року замовили 100 комп'ютерів BeBox. Материнські плати виробляла компанія Altatron. Щойно плати потрапляли до офісу Be, їх вручну збирали та відправляли замовникам. Ентузіазм розробників приголомшував – було відкрито нову групу новин comp.sys.be.
На відміну від Mach, яку створювали професори, NT створювали хакери хоч і ті й інші не були обмежені в грошах та термінах. Після здачі проекту майже вся команда NT перестала працювати в Майкрософт, яка досі користується ядром NT, дописавши всі об'єкти ядра. Фактично в NT вносяться всього коригувальні зміни, жоден примітив ядра був переписаний і жодна система микроядра була модифікована. Це можна легко помітити за тими вихідними текстами, що були вкрадені.
Частина 4. Haiku
Хотілося б написати відповідь на два відкриті листи Майкла Фіпса «Чому Haiku ще актуальна сьогодні» та «Виклики які стоять перед Haiku». Почати пропоную з того що б з'ясувати чим же Haiku є сьогодні насправді, що являє собою проект, і чи є успішні аналоги управління подібними проектами.
Що таке Haiku
Отже, розпочнемо з головного. Що таке Haiku? Без сумніву, головним завданням є повторити в точності (як найближче? – це викликає зараз найголовніші суперечки) BeOS R5. Але чим була BeOS R5 тоді і чим є BeOS R5 зараз. Багато хто висловлює відкрито, що є BeOS для них, і цих думок існує багато, внаслідок чого відповісти на питання, що таке Haiku: проект ентузіастів, система для домашнього використання, останній притулок фанів BeOS, і т.д., стає все складніше та складніше. Якщо ж об'єктивно розглянути саму сутність архітектури BeOS і те, що представляє Haiku зараз, то можна прийти до дуже цікавих висновків. Ми спробуємо проаналізувати, що є Haiku з об'єктивної точки зору, розглядаючи сам об'єкт дослідження такий, який він є зараз, а не братимемо за основу точку зору менеджерів, користувачів та розробників.
Зрушення
Давайте простежимо історію створення BeOS. Поза сумнівом, коли вперше BeOS демонструвалася на «виставці досягнень народного господарства», використовуючи MediaOS маркетинг, всі IT-фахівці поставилися до цього несерйозно. Це говорило про те, що автори дотримувались зовсім інших підходів до побудови продукту та використовували зовсім інші ідеали. Також користувачі, яким сподобалася BeOS, найчастіше оперують зовсім іншими світоглядними принципами щодо того, якою має бути ОС. Сам факт того, що ви отримували BeBox + BeOS відразу говорив про цільову аудиторію - схожа аудиторія і маркетинг зараз у Pegasos.
Так пощастило, що в той час Windows 95 і MacOS 8 були настільки недосконалі, що BeOS на другому етапі своїх Focus Shift (Pivot) підвищила кількість людей, які стали її прихильниками. І цього разу теж спрацювало не те, що BeOS стала кращою, або змінила підхід до просування товару на ринку, а той самий «культурний код», який лежав в основі проекту.
І, нарешті третій, завершальний «Focus Shift», шанувальників якого не так вже й багато це вбудована BeOS, яку чомусь назвали не BeOS Embedded, а BeIA.
Вагова категорія
Я наведу класифікацію ОС з їхнього «обсягу» чи «масивності»: 1). Промислові операційні системи, створені для розгортання корпоративних бізнес-рішень; 2). Вільні операційні системи, які можуть здешевити розгортання деяких корпоративних сегментів; 3). Системи для домашнього, портативного та офісного використання; 4). Системи для ентузіастів, вбудовані системи та спеціалізовані системи для певних завдань або пристроїв.
Якщо розглядати MediaOS як спеціалізовану ОС для звукорежисерів або студійну ОС, яка нерідко саме в такому образі і була представлена на ринку, то це 4. У другому Focus Shift була зроблена спроба вийти на більший ринок спочатку на платформу Mac (яка зараз вже називається OldWorld), потім на Intel, тобто. група 3. Потім був зроблений крок знову назад але вже у системи, що вбудовуються. Таким чином можна промацати "ваговий" спектр BeOS.
Культурний аспект
Другий спектр – це культурний. Вперше цільовою аудиторією виступали «Geeks», вдруге користувачі Apple, спільнота яких також культурно більш рівна. Більше людей, ніж є «geeks» на платформі Intel, зібрати теж не вдалося. Ну, а якщо про BeIA? Не треба забувати, що ті, хто професійно працюють в embedded секторі, так чи інакше є або були молоді «Geeks».
Haiku – Geek OS
Отже формула яка позиціонує BeOS така: "Geeks" — "Легка або трохи більше". Якщо говорити тільки про BeOS R5/Intel, то тут формула така Geeks, Home - Легковісна - Середня. Тож увага! Що це означає? Це означає, що якщо позиціонувати BeOS так як її позиціонували спочатку в Be (ОС для Geeks) набагато вигідніше для Haiku. Насправді, самі розробники її так і позиціонують. Але, на жаль, офіційно багато людей сподіваються побачити закінчений продукт, який можна поставити в себе вдома, і що найцікавіше про це пишуться статті, де порівнюється BeOS і Windows XP або Max OS. X. Так робити не можна. Це не розумно. По друге Haiku відразу визначили платформу: десктопна платформа і сучасні чіп сети і процесори (і обсяги пам'яті). Здебільшого це так тому, що існуючий менеджер пам'яті не дозволяє комфортно грати системою на маленьких обсягах.
За великим рахунком BeOS, тим більше, Haiku – це ОС не для кожного, це ОС для людей технічно грамотних, які можуть переглянути ті принципи, якими керувалися розробники, для тих, хто може визначити належність себе до цієї культури. Витрачати сили на пропаганду, просування системи маси марно, оскільки це її клас. Розробникам потрібно орієнтуватися не на середнього користувача, а на самих себе та своє оточення, що вони з успіхом і роблять. Бракує тільки сказати про це в слух.
Haiku відбулася
Тепер про головне. Випускати систему лише коли вона буде готова? Навіщо, адже Haiku це більше ніж просто система – це зведення правил та культурних традицій, а їх не можна заморозити чи зробити. З іншого боку кінцеві хотілося б мати «подарункові коробки» такі як Pegasos, або, як були BeBox. Але для мене такою подарунковою коробкою є останній знімок із SVN. Я хочу сказати, що необов'язково навіть робити Developer Releases, тому що зараз подивитися на живу систему досить просто.
Haiku – не експериментальний проект, це не мертвий проект. Це живий проект, який дозволяє вам вже зараз порівняти «оригінал» та «копію». Фіппс звичайно критично описав виклики, які стоять перед Haiku, але найголовніше те, що Haiku вже готова, це Geek проект що відбувся. Проект, який має всю атрибутику подібних проектів, має свої історію, культуру, спільноту, традиції та душу якщо хочете.
Частина 5. Чверть століття
18 серпня 2001 року. Саме цим днем датується початок літочислення операційної системи Haiku як день, коли у списку розсилці було ухвалено рішення продовжувати справу інженерів Be. 13 листопада 2001 року Palm завершила поглинання Be, Inc.
Наразі вже важко згадуються ті часи, коли BeOS вдоновлювала і коли комп'ютер справді сприймався персональним. Зараз в епоху Web та розподілених технологій нішу персонального комп'ютера зайняли мобільні телефони, планшети та нетбуки. Але я починав би літочислення платформи з того моменту, коли зібралася команда зі Стіва Сакомана, Жана Луї Гасьє, Бенуа Шилінгса, Боба Гарольда, Еріха Рінгевальда, яка стала основою компанії Be, Inc. То справді був 1991 рік. Таким чином, насправді платформі 20 років. 10 років Be, Inc. писала BeOS і робила комп'ютери і 10 років – вік Haiku спільноти.
Людині незнайомій із системою може здатися дивовижною, навіщо відтворювати з нуля операційну систему, яка в конкурентній боротьбі зазнала поразки. Однак такий перебіг ентузіастів говорить сам за себе. Те, що було створено, залишило невиліковний слід в умах і серцях людей, які здатні написати ОС. Таких людей не дуже небагато, і крім посидючості потрібно мати, крім усього іншого, і по-справжньому непогану обізнаність у інженерних справах.
Світанок embedded технологій, за ним світанок мобільних ОС, а також інтернет комп'ютери (типу Chrome OS) це все насправді через що десятки років тому вже пройшла BeOS. Все що ми бачимо зараз, всі тренди та тенденції вже були пройдені колись, зростають лише кількісні показники згідно із законом Мура. Останній відлуння загибелі операційної системи, яка нагадує нам BeOS, є Symbian (EKA kernel), яка була серцем легендарних портативних комп'ютерів Psion. Щоб зрозуміти embedded сектор досить подивитися на BeOS.
Так, наприклад, у технічних аспектах побудови єдиної мовної абстракції та ООП, аспект-орієнтованого програмування ми бачимо в LISP машинах та Smalltalk системах. Насправді те, що в імперативному програмуванні зараз трендом було створено в 60-х і досі пожинаються плоди цих досліджень.
Єдиний конкуретно-здатні операційні системи які дійшли до нашого часу для робочих станцій — NeXT і Windows NT були побудовані на основі досліджень за операційними системами в Карнегі-Мелон університеті, проекті Mach.
У математиці шлях від обчислюваності по Тьюрингу, через лямбда числення і до Теорії Категорій просвічувався ще в 20-х роках 20 століття. Теоретична межа "кремнієвих" обчислень комп'ютери в 21 столітті змушує розробляти паралельні обчислення на новому, функціональному рівні.
Так що б зрозуміти, що різні патерни та архітектури систем програмування достатньо вивчити LISP, CLOS або Smalltalk. Щоб зрозуміти який має бути ОС для робочої станції досить подивитися на Mach. Щоб зрозуміти теорію обчислень досить вивчити теорію категорій. Щоб зрозуміти embedded програми і geek системи досить подивитися на BeOS.
У тому сенсі, що за цими референсними представниками технологічних областей можна побачити повністю не тільки таксономію області, а й її хронологічно-еволюціоністський аспект.
Єдиний і найємніший сектор ентузіастів (саме ентузіастів, а не промисловий embedded сектор), які рухатимуть платформу BeOS – це гіки, програмісти. Скоро помруть останні гіковські операційні системи: автор SkyOS припинив розробки, Amiga теж добігла кінця, RISC OS у передсмертному пориві відкрила вихідні коди, які відверто кажучи не виблискують, Syllable OS (AtheOS) теж припинила розвиток. Haiku виявляється пережила їх усіх, і це не дивно. Для цього достатньо подивитись у вихідники. Будемо відвертими, при всіх недоліках Haiku спільноти кореневі розробники пишуть код у хорошому тоні, заданому Тревісом Гейссельбрехтом. Його NewOS послужила основою не тільки Haiku OS
На радість або щастя Linux Торвальдса яка теж з'явилася з Гік сектора з успіхом завоювала всесвітні embedded сектор, а також ринок серверів та навколосерверного обладнання. Не даватиме оцінок Лінуксу, тому що дискусія здебільшого зведеться до двох різних підходів до виробництва програмного забезпечення: 1) комунізм чи демократія і 2) жорстка диктатура. Приклади перших - це Linux, Windows, FreeBSD, приклади - OpenBSD, Apple.
Дискурс про Лінукс дуже слользький грунт, тому що спектр Лінукса поки набагато більше ніж BeOS або Haiku. Якщо Haiku потенційно ще можна запустити на телефоні (ARM), то її non-MMU версія стоїть поки під питанням. Однак портованість менеджера віртуальної пам'яті Haiku знаходиться на високому рівні, на такому ж як і OpenBSD UVM. Захоплення ринку серверів теж не за горами, для цього достатньо щоб Haiku стабільно хостила Erlang, який вже є у HaikuPorts. Таким чином у принципі Haiku теоретично теж може вмістити весь спектр обчислювального обладнання від мобільного телефону до телекомунікаційного сервера, але на практиці спектр Лінукса поки повніше. Принаймні сам codebase чистіший, платформа стрункіша, і якщо триматися диктатури в управлінні, то можна через поглинання Geek сектора дістатися і до Mobile Embedded а там і до Telecommunication Servers. Принаймні це ті шляхи, які я бачу.
Маючи зайвих 1-2 лями, я негайно вклав би їх у розробку ARM порту Haiku і в дизайн мобільного GUI для телефонів. Як GUI API я вибрав Qt і для сумісності залишив би App Server. Таким чином я спробував би зайняти нішу Symbian і MeeGo (MeeGo - це поточна Geek OS в секторі Mobile Embedded від Nokia). Крім того, я б зайнявся новим GUI для планшетів і сенсорних Desktop, спробувавши укласти контракти з виробниками обладнання і спробувати потіснити Android і Apple. На щастя, у Desktop секторі конкурентів немає (всі десктоп Geek OS вже доживають своє століття). А на нетбуках усім Лінукс стоїть біля горла і все тільки й чекати на стабільну Хайку, тут навіть питань не виникає, тут Хайку вже перемогла. Далі я би випустив ядро та TRON прошарком для японського ринку захопивши таким чином embedded у Японії та зайнявся би стабілізацією роботи Erlang на Haiku та пропозиціями для Erlang деплоєрів. Впевнений — голі цифри у перевагі над Linux були б переконливими мільйонами слів.